home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / tools / rb / jlcd100.lzh / TNB_FSW / TMS062.Lzh / TMS.s < prev    next >
Text File  |  1995-10-30  |  14KB  |  704 lines

  1.     .include    tnb.mac
  2.     .include    iocscall.mac
  3.     .include    doscall.mac
  4.  
  5. HEAD1 = 'TMS_'
  6. HEAD2 = '_062'
  7.  
  8. StartStatio:*******************常駐部
  9. SS:
  10.     .dc.l    -1
  11.     .dc.w    $8000.w
  12.     .dc.l    STRR
  13.     .dc.l    ETYP
  14. dhead:    .dc.l    HEAD1,HEAD2
  15. STRA5:    .dc.l    $0.l
  16. STRR:    move.l    a5,STRA5
  17.     rts
  18. ETYP:
  19.     movem.l    d0/a5,-(a7)
  20.     movea.l    STRA5(pc),a5
  21.     bsr    ETYPSUB
  22.     move.b    d0,$3(a5)
  23.     lsr.w    #8,d0
  24.     move.b    d0,$4(a5)
  25.     movem.l    (a7)+,d0/a5
  26.     rts
  27. ETYPSUB:
  28.     tst.b    $2(a5)
  29.     beq    ETYP_KEEP
  30.     move.w    #$5003,d0    *err
  31.     rts
  32.  
  33.     *********************************************
  34. head:
  35.     .dc.l    HEAD1
  36.     .dc.l    HEAD2
  37.     .even
  38.  
  39. IM09b6:    *---------------------------
  40.     *    IOCSワークコール 09b2
  41.     *    マウス読み込み前処理
  42.     *        1/100sで呼ばれるらしい
  43.     *        [4800bpsは1秒間に600byte 1/100sなら 6byte来る?]
  44. IM09b6_    = $09b6.w
  45.         *----------------------------------------
  46.         *    マウスHIOCS
  47.         *$0933.w
  48.         *     0=割り込みはあったが1/100s以内に処理が終わらなかった
  49.         *    -1=データ読み込み準備せよ
  50.         *     1=繋がっていないから他のコネクタを
  51.         *     1> データ待ち中
  52.         *SCC割り込みがあれば 0か-1になる
  53.         *     0=プラス値なら
  54.         *    -1=マイナス値なら
  55.         *----------------------------------------
  56.         *    TMS.x内部ワーク
  57.         *D0933::
  58.         *    -1=SCC割り込みしていない
  59.         *     0=3バイト読んでマウスを動かした
  60.         *     1=読み込み途中
  61.         *
  62.         *MsChkMod=0    コネクタチェック 本体
  63.         *MsChkMod=1    コネクタチェック キーボード
  64.         *----------------------------------------
  65.     tst.b    D0933
  66.     beq    IMLL1
  67.     bmi    @f
  68.         *********************************************読み込み途中
  69.     subq.w    #1,StCot
  70.     beq    IMLL1    *たえる
  71.     rts
  72. @@:        *****************************割り込んでいない(含むエラー)
  73.     clr.b    MaeBot        *前のボタン状態
  74. IMLL1:        ******************************繋がっていない&読み込み終了
  75.     tst.w    MsChkMod
  76.     bne    IMKL1
  77.         ***本体
  78.     move.b    #$05,$00e98001    *WR5 = 8bit ___
  79.     move.b    #$60,$00e98001    *        RTS端子を 'H'にする
  80.                 *        つまり MSCTRLを 'H'
  81.     move.w    #1,MsChkMod    *コネクタチェックをキーボードにする
  82.     bra    IMKL2
  83. IMKL1:        ***キーボード
  84. @@:    tst.b    $00e8802d    *データがのこってないか?
  85.     bpl    @b
  86.     move.b    #$41,$00e8802f    *キーボードマウス MSCTRL OFF  コマンド
  87.     clr.w    MsChkMod    *コネクタチェックを本体にする
  88. IMKL2:
  89.     clr.b    D0933        * = 0
  90.     subq.w    #1,MsConChk
  91.     bne    IMLL3
  92.  
  93.         **********************X68マウスが接続されていない時の処理
  94.         *    NOXMS.x 改
  95.     move.w    #2,MsConChk
  96.  
  97.     movem.l    d0-d7/a1-a6,-(a7)
  98.     move.w    sr,-(sp)
  99.     move.w    #$2700,sr
  100.     clr.l    $0ac6.w        *IOCS-WORK
  101.     lea    nuldata(pc),a1
  102.     clr.l    (a1)
  103.     movea.l    $0934.w,a0
  104.     jsr    (a0)        *ソフトキーボート
  105.  
  106.     *move.l    OldD(pc),d0
  107.     *move.l    (a1),OldD    *記憶
  108.     *bne    @f
  109.     *tst.l    d0
  110.     *beq    TMC_L2
  111. @@:
  112.     movea.l    $0938.w,a0
  113.     jsr    (a0)        *マウスカーソル書き替え
  114. TMC_L2:    move.w    (sp)+,sr
  115.     movem.l    (a7)+,d0-d7/a1-a6
  116.     *bra    IMLL3
  117.  
  118. IMLL3:
  119.         ********************************************割り込み再設定
  120.     tst.b    $0bbf.w        *書き替え処理中?
  121.     bpl    @f
  122.     rts
  123. @@:
  124.     move.l    a0,-(sp)
  125.     move.w    #$0003,$092a.w        *3バイトデータ
  126.     move.l    #$00000930,$092c.w    *ワーク先頭アドレス
  127.     lea.l    $00e98003,a0
  128.     tst.b    (a0)
  129.     tst.b    (a0)
  130.     tst.b    (a0)        *初期化の一種
  131.     tst.b    (a0)
  132.  
  133.     tst.w    MsChkMod
  134.     bne    IMIL1
  135.         ***本体
  136.     move.b    #$05,$00e98001    *WR5 = 8bit ___
  137.     move.b    #$62,$00e98001    *        RTS端子を 'L'にする
  138.                 *        つまり MSCTRLを 'L'
  139.     bra    IMIL2
  140. IMIL1:        ***キーボード
  141. @@:    tst.b    $00e8802d    *データがのこってないか?
  142.     bpl    @b
  143.     move.b    #$40,$00e8802f    *キーボードマウス MSCTRL ON  コマンド
  144. IMIL2:
  145.     movea.l    (sp)+,a0
  146.     st    D0933        * = -1
  147.     move.w    #2,StCot    * =2 定数!!    //ROM MS の場合 5かな
  148.     rts
  149.  
  150. IM09b6_JMP:
  151.     move.l    IM09b6_JPT(pc),-(sp)
  152.     rts
  153. IM09b6_JPT:
  154.     .dc.l    0
  155.  
  156.  
  157.  
  158. SCCB:    *-----------------------------
  159.     *    ($54)[$150]
  160.     *    ($55)[$154]
  161.     *  1バイト入力割り込みルーチン!!!
  162.     *
  163. SCCB_  = $0150.w
  164. SCCB__ = $0154.w
  165.     move.w    #$2700,sr
  166.     move.b    #1,D0933    * 1=読み込み途中
  167.     move.l    a1,-(sp)
  168.     movea.l    $092c.w,a1
  169.     move.b    $00e98003,(a1)+
  170.     move.l    a1,$092c.w
  171.     subq.w    #1,$092a.w
  172.     beq    @f        *3バイトたまったら jmp
  173. SBLL1:
  174.     movea.l    (sp)+,a1
  175.     move.b    #$38,$00e98001    *SCCの他の割り込み有効化
  176.     rte
  177. @@:
  178.             ***3BYTEたまった
  179.     move.w    #$0003,$092a.w
  180.     lea.l    $0930.w,a1
  181.     move.l    a1,$092c.w
  182.     tas.b    $0bbf.w
  183.     bmi    SBLL1        *前回ビットが立っていたら jmp
  184.                 *    ^ 処理中なら
  185.     movem.l    d0-d2/a0,-(sp)
  186.     movea.l    a1,a0
  187.     lea.l    $0cb1.w,a1
  188.     move.b    (a0)+,(a1)+
  189.     move.b    (a0)+,(a1)+
  190.     move.b    (a0)+,(a1)+
  191.     subq.w    #3,a1
  192.     move.b    #$38,$00e98001        *SCCの他の割り込み有効化
  193.     move.w    20(sp),d0    * (5*4)戻し
  194.     or.w    #$2000,d0
  195.     move.w    d0,sr
  196.         ****** データチェック
  197.     *move.b    (a1),d0
  198.     *andi.b    #$FC,d0
  199.     *bne    SBLL2
  200.         ****** 各コネクタ別ワーク書き込み
  201.     lea    Data0(pc),a0
  202.     move.w    MsChkMod(pc),d0
  203.     beq    @f
  204.     addq.w    #4,a0    *Data1
  205. @@:    tst.b    3(a0)
  206.     beq    @f
  207.     clr.l    (a0)
  208. @@:    move.b    (a1),d0
  209.     or.b    d0,(a0)
  210.     move.b    1(a1),d0
  211.     add.b    d0,1(a0)
  212.     move.b    2(a1),d0
  213.     add.b    d0,2(a0)
  214.         *********** マウスカーソル移動
  215.     *move.w    MsChkMod(pc),d0
  216.     *btst    d0,DrvMod        *bit 0:本体  bit1:キーボード   1:機能する 0:しない
  217.     *beq    SBLL2
  218.         ***** ボタン調整
  219.     move.b    (a1),d2    *今回のを記憶
  220.     lea    BotBuf(pc),a0
  221.     move.w    MsChkMod(pc),d0
  222.     move.b    0(a0,d0.w),d0
  223.     or.b    d0,(a1)
  224.     moveq    #1,d0
  225.     sub.w    MsChkMod(pc),d0
  226.     move.b    d2,0(a0,d0.w)    *今回のを記憶
  227.  
  228.     move.b    (a1),d2
  229.     or.b    MaeBot(pc),d2    *前のボタン状態
  230.     move.b    (a1),MaeBot
  231.     move.b    d2,(a1)
  232.  
  233.     movea.l    $0934.w,a0
  234.     jsr    (a0)        *ソフトキーボート
  235.     movea.l    $0938.w,a0
  236.     jsr    (a0)        *マウスカーソル書き替え
  237.  
  238. SBLL2:        ******後処理
  239.     bclr.b    #$07,$0bbf.w    *bit7flag をクリア ->処理終わり
  240.     clr.b    D0933        *     0=3バイト読んでマウスを動かした
  241.     move.w    #3,MsConChk    *コネクトチェック 非接続なら -1していく
  242.     movem.l    (sp)+,d0-d2/a0-a1
  243.     rte
  244.  
  245. SCCB_JMP:
  246.     move.l    SCCB_JPT(pc),-(sp)
  247.     rts
  248. SCCB_JPT:
  249.     .dc.l    0
  250.  
  251.  
  252. MS_SEL:    *-----------------------------
  253.     *    ($17B)[$05EC]
  254.     *    IOCS $7B MS_SEL
  255.     *
  256. MS_SEL_ = $05EC
  257.  
  258.     cmpi.w    #$100,d1    *本体
  259.     beq    @f
  260.     cmpi.w    #$101,d1    *キーボード
  261.     beq    @f
  262. MS_SEL_JMP:
  263.     move.l    MS_SEL_JPT(pc),-(sp)
  264.     rts
  265. MS_SEL_JPT:
  266.     .dc.l    0
  267. @@:
  268.     move.l    #'TEMC',d0
  269.     rts
  270.  
  271. MS_LIMIT:*-----------------------------
  272.     *    ($177)[$05DC]
  273.     *    IOCS $77 MS_LIMIT
  274.     *
  275. MS_LIMIT_ = $05DC
  276.  
  277.     cmpi.l    #'TEMC',d1
  278.     beq    @f
  279. MS_LIMIT_JMP:
  280.     move.l    MS_LIMIT_JPT(pc),-(sp)
  281.     rts
  282. MS_LIMIT_JPT:
  283.     .dc.l    0
  284. @@:
  285.     cmpi.l    #0,d2    *本体
  286.     beq    @f
  287.     cmpi.l    #1,d2    *キーボード
  288.     beq    @f
  289.     bra    MS_LIMIT_JMP
  290. @@:
  291.     movem.l    d1/a0,-(sp)
  292.     lea    Data0(pc),a0
  293.     tst.l    d2
  294.     beq    @f
  295.     lea    Data1(pc),a0
  296. @@:    moveq    #0,d0
  297.     btst    #0,(a0)
  298.     beq    @f
  299.     ori.l    #$FF000000,d0
  300. @@:    btst    #1,(a0)
  301.     beq    @f
  302.     ori.l    #$00FF0000,d0
  303. @@:    moveq    #0,d1
  304.     move.b    1(a0),d1
  305.     lsl.l    #8,d1
  306.     or.w    d1,d0
  307.     move.b    2(a0),d0
  308.     move.b    #-1,3(a0)
  309.     clr.b    1(a0)    *移動量はクリア
  310.     clr.b    2(a0)
  311.     *clr.l    (a0)
  312.     movem.l    (sp)+,d1/a0
  313.     rts
  314.  
  315. *-----NOXMS.x
  316. *OldD:
  317. *    .dc.l    0
  318. nuldata:
  319.     .dc.b    0,0,0,0
  320.     .even
  321. *-----work
  322.  
  323. MaeBot:    .dc.b    0        *前のボタン状態
  324.     .even
  325.  
  326. Data0:    .dc.l    0        *MS_LIMIT戻り値用 本体        (form.同nuldata)
  327. Data1:    .dc.l    0        *MS_LIMIT戻り値用 キーボード    (form.同nuldata)
  328.             *読んだら +3.bを-1に!
  329.  
  330. BotBuf:    .dc.b    0,0        *ボタンの状態 0:キーボード側 1:本体側
  331.     .even
  332.  
  333. D0933:    .dc.b    0
  334.     .even
  335.  
  336. StCot:    .dc.w    0        *割り込みカウント?
  337.  
  338. MsChkMod:
  339.     .dc.w    0        *0:本体側チェック中 1:キーボード側チェック中
  340.  
  341. MsConChk:
  342.     .dc.w    3        *コネクトチェック 非接続なら -1していく
  343.  
  344. *-----flag
  345.  
  346. DrvMod:    .dc.b    3        *bit 0:本体  bit1:キーボード   1:機能する 0:しない
  347.     .even
  348. StaMod:    .dc.b    0        *常駐モード 0;command  1;config
  349.     .even
  350.  
  351. EndStatio:*******************常駐部
  352.  
  353.  
  354. ETYP_KEEP:*--------------------------------------
  355.         **常駐!
  356.     move.l    #EndStatio,$e(a5)
  357.  
  358.     Print    CRLF(pc)
  359.     Print    LR1(pc)
  360.     Print    LR2_3(pc)
  361.  
  362.     move.l    SCCB_,SCCB_JPT
  363.      lea    SCCB(pc),a0
  364.      move.l    a0,SCCB_
  365.      move.l    a0,SCCB__
  366.     move.l    IM09b6_,IM09b6_JPT
  367.      lea    IM09b6(pc),a0
  368.      move.l    a0,IM09b6_
  369.     move.l    MS_SEL_,MS_SEL_JPT
  370.      lea    MS_SEL(pc),a0
  371.      move.l    a0,MS_SEL_
  372.     move.l    MS_LIMIT_,MS_LIMIT_JPT
  373.      lea    MS_LIMIT(pc),a0
  374.      move.l    a0,MS_LIMIT_
  375.  
  376.     move.b    #-1,StaMod
  377.  
  378.     moveq.l    #$00,d0
  379.     rts
  380.  
  381.  
  382. MarkerChk:*----------------------------------------
  383.     *    a0 アドレス
  384.     *
  385.     *[戻り値] bne ちがう
  386.     *      beq あっている
  387.     cmpa.l    #$00F00000,a0
  388.     bcc    @f
  389.     cmp.l    #HEAD1,(a0)
  390.     bne    @f
  391.     cmp.l    #HEAD2,4(a0)
  392.     bne    @f
  393.     cmpa.l    a0,a0        *z=1
  394. @@:
  395.     rts
  396.  
  397.  
  398. InvChk:*----------------------------------------
  399.     *    a0.l==なら非常駐
  400.     *    a0.l!=なら常駐
  401.     movea.l    (a0),a0            *一つ前のポインタ
  402.     cmpa.l    #$00F00000,a0
  403.     bcc    IC1
  404.     cmp.l    #HEAD1,$0100+(head-SS)(a0)
  405.     bne    @f
  406.     cmp.l    #HEAD2,$0104+(head-SS)(a0)
  407.     bne    @f
  408.     adda.l    #$100,a0    **[SS]のポインタ
  409.     rts
  410. @@:                    **違う
  411.     tst.l    (a0)            *一つ前のポインタ
  412.     bne    InvChk            *0でない(上へ)
  413. IC1:    sub.l    a0,a0    *非常駐
  414.     rts
  415. DevChk:*----------------------------------------
  416.     *    a0.l==なら非常駐
  417.     *    a0.l!=なら常駐
  418.     movea.l    #$6800,a0
  419. DC1:    cmp.l    #'NUL ',(a0)
  420.     bne    @f
  421.     cmp.l    #'    ',4(a0)
  422.     bne    @f
  423.     bra    DC4
  424. @@:
  425.     addq.l    #2,a0
  426.     bra    DC1    *絶対あるはず。。
  427. DC4:
  428.     move.l    d0,-(sp)
  429.     suba.l    #(dhead-SS),a0    *リンクポインタ
  430. DC2:    movea.l    (a0),a0
  431.     move.l    a0,d0
  432.     bmi    DC3
  433.     cmp.l    #HEAD1,(dhead-SS)(a0)
  434.     bne    DC2
  435.     cmp.l    #HEAD2,(dhead-SS)+4(a0)
  436.     bne    DC2
  437.     cmp.l    #HEAD1,(head-SS)(a0)
  438.     bne    DC2
  439.     cmp.l    #HEAD2,(head-SS)+4(a0)
  440.     bne    DC2
  441.     *あった
  442.     move.l    (sp)+,d0
  443.     rts
  444. DC3:
  445.     move.l    (sp)+,d0
  446.     sub.l    a0,a0    *非常駐
  447.     rts
  448.  
  449.  
  450. AtoI:*----------------------------------------
  451.     *    a2 アドレス
  452.     *[戻り値] d0.l 数字
  453.     moveq    #0,d0
  454. @@:    move.b    (a2)+,d2
  455.     subi.b    #'0',d2
  456.     bcs    AIr
  457.     cmpi.b    #9,d2
  458.     bhi    AIr
  459.     andi.l    #$0000FF,d2
  460.     mulu    #10,d0
  461.     add.l    d2,d0
  462.     bra    @b
  463. AIr:    subq    #1,a2
  464.     rts
  465.  
  466.  
  467. init:*------------------------------------------------------------------
  468.     pea    LR1(pc)
  469.     DOS    _PRINT
  470.     addq.w    #4,sp
  471.     ** 常駐チェック **
  472.  
  473.     suba.l    a1,a1
  474.     SUPER
  475.     movea.l    d0,a1
  476.  
  477.     moveq    #0,d1
  478.     bsr    InvChk
  479.     move.l    a0,d0
  480.     bne    @f
  481.     bsr    DevChk
  482. @@:    movea.l    a0,a3        *常駐先頭アドレス
  483.  
  484.     movea.l    SCCB_,a0
  485.     suba    #SCCB-head,a0
  486.     bsr    MarkerChk
  487.     bne    @f
  488.     bset    #0,d1
  489. @@:
  490.     movea.l    SCCB__,a0
  491.     suba    #SCCB-head,a0
  492.     bsr    MarkerChk
  493.     bne    @f
  494.     bset    #1,d1
  495. @@:
  496.     movea.l    IM09b6_,a0
  497.     suba    #IM09b6-head,a0
  498.     bsr    MarkerChk
  499.     bne    @f
  500.     bset    #2,d1
  501. @@:
  502.     movea.l    MS_SEL_,a0
  503.     suba    #MS_SEL-head,a0
  504.     bsr    MarkerChk
  505.     bne    @f
  506.     bset    #3,d1
  507. @@:
  508.     movea.l    MS_LIMIT_,a0
  509.     suba    #MS_LIMIT-head,a0
  510.     bsr    MarkerChk
  511.     bne    @f
  512.     bset    #4,d1
  513. @@:
  514.                 *d1に常駐状態
  515.     USER
  516.  
  517.     ** 常駐していたらそのデータを引用 **
  518.     move.l    a3,d0
  519.     beq    conl
  520.  
  521.     suba.l    a1,a1
  522.     SUPER
  523.     movea.l    d0,a1
  524.     move.b    DrvMod-SS(a3),DrvMod
  525.     move.b    StaMod-SS(a3),StaMod
  526.     USER
  527.  
  528. conl:    ** コマンドラインチェック **
  529.     tst.b    (a2)+        *スキップ
  530. sw:    move.b    (a2)+,d0
  531.     beq    keep
  532.     cmpi.b    #' ',d0
  533.     beq    sw
  534.     cmpi.b    #$09,d0        *tab
  535.     beq    sw
  536.     cmpi.b    #'-',d0
  537.     beq    swc
  538.     cmpi.b    #'/',d0
  539.     beq    swc
  540. swe:    pea    LR6(pc)
  541.     bra    PE    *end
  542. swc:    **スイッチ判断
  543.     move.b    (a2)+,d0
  544.     beq    swe
  545.     cmpi.b    #'?',d0
  546.     beq    help
  547.     ori.b    #$20,d0    *小文字化!
  548.     cmpi.b    #'r',d0
  549.     beq    free
  550.     cmpi.b    #'n',d0
  551.     beq    nswc
  552.     cmpi.b    #'m',d0
  553.     beq    mswc
  554.     cmpi.b    #'k',d0
  555.     beq    kswc
  556.     cmpi.b    #'h',d0
  557.     beq    help
  558. swcerr:    pea    LR7(pc)
  559.     bra    PE    *end
  560.  
  561. nswc:******************
  562.     move.b    #3,DrvMod    *bit 0:本体  bit1:キーボード   1:機能する 0:しない
  563.     bra    sw
  564. mswc:******************
  565.     move.b    #1,DrvMod    *bit 0:本体  bit1:キーボード   1:機能する 0:しない
  566.     bra    sw
  567. kswc:******************
  568.     move.b    #2,DrvMod    *bit 0:本体  bit1:キーボード   1:機能する 0:しない
  569.     bra    sw
  570.  
  571.  
  572. help:******************
  573.     pea    LRH(pc)
  574.     bra    PE    *end
  575.  
  576.  
  577. keep:    ************************** 常駐させる
  578.     move.l    a3,d0
  579.     beq    @f
  580.         *既に常駐、設定変更
  581.     suba.l    a1,a1
  582.     SUPER
  583.     movea.l    d0,a1
  584.      move.b    DrvMod(pc),DrvMod-SS(a3)
  585.      clr.b    MaeBot-SS(a3)        *前のボタン状態初期化
  586.     USER
  587.     bsr    keepsub
  588.     pea    LR5(pc)
  589.     bra    PE    *end
  590. @@:
  591.     **セット
  592.     suba.l    a1,a1
  593.     SUPER
  594.     movea.l    d0,a1
  595.  
  596.     move.l    SCCB_,SCCB_JPT
  597.      lea    SCCB(pc),a0
  598.      move.l    a0,SCCB_
  599.      move.l    a0,SCCB__
  600.     move.l    IM09b6_,IM09b6_JPT
  601.      lea    IM09b6(pc),a0
  602.      move.l    a0,IM09b6_
  603.     move.l    MS_SEL_,MS_SEL_JPT
  604.      lea    MS_SEL(pc),a0
  605.      move.l    a0,MS_SEL_
  606.     move.l    MS_LIMIT_,MS_LIMIT_JPT
  607.      lea    MS_LIMIT(pc),a0
  608.      move.l    a0,MS_LIMIT_
  609.  
  610.     USER
  611.  
  612.     bsr    keepsub
  613.  
  614.     pea    LRKP(pc)
  615.     DOS    _PRINT
  616.     addq    #4,sp
  617.     clr.w    -(sp)
  618.     move.l    #EndStatio-StartStatio,-(sp)
  619.     DOS    _KEEPPR
  620.  
  621.     ****************
  622. keepsub:
  623.     *lea    LR2(pc),a0
  624.     *moveq    #0,d0
  625.     *move.b    DrvMod(pc),d0        *ボタンモード
  626.     *add.w    d0,d0
  627.     *add.w    d0,d0
  628.     *move.l    (a0,d0.w),-(sp)
  629.     pea    LR2_3(pc)
  630.     DOS    _PRINT
  631.     addq    #4,sp
  632.     rts
  633.  
  634. free:    *****************************常駐解除
  635.     move.l    a3,d0
  636.     bne    @f
  637.     pea    LR8(pc)        **非常駐
  638.     bra    PE    *end
  639. @@:
  640.     tst.b    StaMod
  641.     beq    @f
  642.     pea    LRCN(pc)    **CONFIG常駐
  643.     bra    PE    *end
  644. @@:
  645.     cmpi.w    #$1F,d1
  646.     beq    @f
  647.     pea    LR4(pc)        **ベクタが占領
  648.     bra    PE    *end
  649. @@:
  650.     suba.l    a1,a1
  651.     SUPER
  652.     movea.l    d0,a1
  653.  
  654.     move.l    (SCCB_JPT-SS)(a3),SCCB_
  655.     move.l    (SCCB_JPT-SS)(a3),SCCB__
  656.     move.l    (IM09b6_JPT-SS)(a3),IM09b6_
  657.     move.l    (MS_SEL_JPT-SS)(a3),MS_SEL_
  658.     move.l    (MS_LIMIT_JPT-SS)(a3),MS_LIMIT_
  659.  
  660.     USER
  661.  
  662.     sub.l    #$00000F0,a3
  663.     move.l    a3,-(sp)
  664.     DOS    _MFREE
  665.     addq    #4,sp
  666.  
  667.     pea    LR3(pc)
  668. PE:    DOS    _PRINT
  669.     addq.w    #4,sp
  670.     DOS    _EXIT
  671.  
  672. LR2:    .dc.l    LR2_0,LR2_1,LR2_2,LR2_3
  673. LR2_0:    .dc.b    0
  674. LR2_1:    .dc.b    ' 本体のMOUSEが使用出来ます。',$0d,$0a,0
  675. LR2_2:    .dc.b    ' キーボードのMOUSEが使用出来ます。',$0d,$0a,0
  676. LR2_3:    .dc.b    ' 本体とキーボードのMOUSEが併用出来ます。',$0d,$0a,0
  677. LRKP:    .dc.b    ' 常駐しました。',$0d,$0a,0
  678. LR3:    .dc.b    ' 常駐解除しました。',$0d,$0a,0
  679. LR4:    .dc.b    ' ベクタが占領されています。',$0d,$0a,0
  680. LR5:    .dc.b    ' 設定を変更しました。',$0d,$0a,0
  681. LR6:    .dc.b    ' コマンドラインが異常です。',$0d,$0a,0
  682. LR7:    .dc.b    ' スイッチが異常です。',$0d,$0a,0
  683. LR8:    .dc.b    ' 常駐していません。',$0d,$0a,0
  684. LRTB:    .dc.b    ' ボタン機能を反転します。',$0d,$0a,0
  685. LRCN:    .dc.b    ' CONFIG.SYSで登録されています。',$0d,$0a
  686.     .dc.b    ' 常駐解除できません。',$0d,$0a,0
  687.     .even
  688. LRH:
  689.     .dc.b    $0d,$0a
  690.     .dc.b    '使用法:TMS.x [switch]',$0d,$0a
  691.     .dc.b    '    /R ・・・・ 常駐解除します。',$0d,$0a
  692.     *.dc.b    '    /N ・・・・ 両方のマウスで動作します。',$0d,$0a
  693.     *.dc.b    '    /M ・・・・ 本体接続マウスのみ動作します。',$0d,$0a
  694.     *.dc.b    '    /K ・・・・ キーボード接続マウスのみ動作します。',$0d,$0a
  695.     *.dc.b    '        ただし、コネクトしてあると処理落ちします。',$0d,$0a
  696.     .dc.b    $0d,$0a,0
  697.     .even
  698. LR1:    .dc.b    'X68k TWIN MOUSE DRIVER Version 0.62 Copyright 1994 1995 TNB製作所'
  699. CRLF:    .dc.b    $0d,$0a,0
  700.     .even
  701.  
  702.     .end    init
  703.  
  704.